

/**
 * 把action创建者和dispatch绑起来
 * @param {*} actionCreators action创建者
 * @param {*} dispatch 派发方法
 */
function bindActionCreators(actionCreators,dispatch){
    //先创建一个返回的新的空对象
    let boundActionCreators = {};
    //遍历actionCreators所有属性，也就是所有的actionCreator函数
    for(const key in actionCreators){
        //获取每个方法对应的actionCreator函数
        const actionCreator = actionCreators[key];
        //给boundActionCreators赋值 ，属性名不变,值 变成一个新的函数
        boundActionCreators[key]= function(...args){
            //此新方法执行的时候会派发老的方法的返回的action动作对象
            dispatch(actionCreator(...args));
        }
    }
    return boundActionCreators;
}
export default bindActionCreators;

/**
actionCreators={
    add1(){
        return {type:'ADD1'}
    }
}
actionCreators.add1();
const boundActionCreators= bindActionCreators(actionCreators,dispatch);
boundActionCreators={
    add1(){
        //return {type:'ADD1'}
        dispatch({type:'ADD1');
    }
}
boundActionCreators.add1();
 */